import pandas as pd
import numpy as np

path = r'data\美国国家资产负债表updateing.xlsx'
data_all = pd.read_excel(path, sheet_name=None)

## 有哪些sheet
 # ['Contents', 'IMAtS1.a-A', 'IMAtS1.q-Q', 'IMAtS2.a-A', 'IMAtS2.q-Q', 
 # 'IMAtS3.a-A', 'IMAtS3.q-Q', 'IMAtS4.a-A', 'IMAtS4.q-Q', 
 # 'IMAtS5.a-A', 'IMAtS5.q-Q', 'IMAtS6.a-A', 'IMAtS6.q-Q', 
 # 'IMAtS61.a-A', 'IMAtS62.a-A', 'IMAtS63.a-A', 'IMAtS64.a-A', 'IMAtS65.a-A', 
 # 'IMAtS7.a-A', 'IMAtS7.q-Q', 'IMAtS8.a-A', 'IMAtS8.q-Q', 'IMAtS9.a-A', 'IMAtS9.q-Q']

sheet_name_map = data_all['Contents']
sheet_name_map = sheet_name_map.iloc[1:, 1:3]
sheet_name_map.columns = sheet_name_map.iloc[0]
sheet_name_map = sheet_name_map.iloc[2:,:]
# sheet 名称与解释
print(sheet_name_map)

# 构建字典，key为sheet名称，value为sheet解释
sheet_name_dict = sheet_name_map.set_index('Code')['Title'].to_dict()
sheet_name_dict
for k, v in sheet_name_dict.items():
    print(v)
# 构建中文名称字典    
map_to_cn = {
    'Table S.1.a Total Economy - Current Account': '所有部门_经常账户_年度',
    'Table S.1.q Total Economy - Current Account': '所有部门_经常账户_季度',
    'Table S.2.a Selected Aggregates for Total Economy and Sectors' : '表S.2.a 整体经济及各部门部分综合数据表_年度​',
    'Table S.2.q Selected Aggregates for Total Economy and Sectors' :'​表S.2.q 整体经济及各部门部分综合数据表_季度',
    'Table S.3.a Households and Nonprofit Institutions Serving Households': '表S.3.a 家庭及非营利机构_年度',
    'Table S.3.q Households and Nonprofit Institutions Serving Households': '表S.3.q 家庭及非营利机构_季度',
    'Table S.4.a Nonfinancial Noncorporate Business':'表S.4.a 非金融非公司企业_年度',
    'Table S.4.q Nonfinancial Noncorporate Business<sup>1</sup>':'表S.4.a 非金融非公司企业_季度_注',
    'Table S.5.a Nonfinancial Corporate Business':'表S.5.a 非金融公司企业_年度',
    'Table S.5.q Nonfinancial Corporate Business<sup>1</sup>': '表S.5.q 非金融公司企业_季度_注',
    'Table S.6.a Financial Business': '表S.6.a 金融部门_年度',
    'Table S.6.q Financial Business<sup>1</sup>':'表S.6.a 金融部门_季度_注',
    'Table S.6.1.a Financial Business, Central Bank': '表S.6.1.a 金融部门_中央银行_年度',
    'Table S.6.2.a Financial Business, Private Depository Institutions': '表S.6.2.a 金融部门_存款机构_年度',
    'Table S.6.3.a Financial Business, Property-casualty and life insurance companies': '表S.6.3.a 金融部门_保险公司_年度',
    'Table S.6.4.a Financial Business, Pension Funds': '表S.6.4.a 金融部门_养老金基金_年度',
    'Table S.6.5.a Financial Business, Other Financial Institutions<sup>1</sup>': '表S.6.5.a 金融部门_其他金融机构_年度_注',
    'Table S.7.a Federal Government': '表S.7.a 联邦政府_年度',
    'Table S.7.q Federal Government<sup>1</sup>': '表S.7.q 联邦政府_季度_注',
    'Table S.8.a State and Local Government': '表S.8.a 州及地方政府_年度',
    'Table S.8.q State and Local Government<sup>1</sup>': '表S.8.q 州及地方政府_季度_注',
    'Table S.9.a Rest of the World': '表S.9.a 其他对手方_年度',
    'Table S.9.q Rest of the World': '表S.9.q 其他对手方_季度',
}
for k in map_to_cn:
    print(k)
# 构建中文名称字典
cn_data_all = {}
short_keys = list(sheet_name_dict.keys())
cn_keys = list(map_to_cn.keys())
for k,v in data_all.items():
    kk = f"{k[:-2]}"
    if kk in short_keys:
        long_name = sheet_name_dict[kk]
        if long_name in cn_keys:
            long_cn_name = map_to_cn[long_name]
            print(k, '简称 ', kk, ' 英文名 ', long_name, '中文名', long_cn_name)

# 探索s1a
s1a = data_all['IMAtS1.a-A']
s1a.columns = s1a.iloc[6,:]
s1a = s1a.iloc[7:,:]
s1a.index = s1a.iloc[:,1]
s1a = s1a.iloc[:,3:]
# s1a = s1a.iloc[1:,:]
s1a